import UIKit

@available(iOS 7.0, *)
extension QKC where AA :UIPushBehavior {
    open func items_qk_g() -> QKC<AA,YY,ZZ, [UIDynamicItem] >{
		 self +^ self.value.items
	}

    open func mode_qk_g() -> QKC<AA,YY,ZZ, UIPushBehavior.Mode >{
		 self +^ self.value.mode
	}

    open func active_qk_s(_ active:  Bool) -> QKC<AA,YY,ZZ, Bool>{
		return link(next: active).then_QK { $0.value.active = active }
	}
    open func active_qk_g() -> QKC<AA,YY,ZZ, Bool>{
		 self +^ self.value.active
	}

    open func angle_qk_s(_ angle:  CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		return link(next: angle).then_QK { $0.value.angle = angle }
	}
    open func angle_qk_g() -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.angle
	}

	// A continuous force vector with a magnitude of 1.0, applied to a 100 point x 100 point view whose density value is 1.0, results in view acceleration of 100 points per s^2
    open func magnitude_qk_s(_ magnitude:  CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		return link(next: magnitude).then_QK { $0.value.magnitude = magnitude }
	}
    open func magnitude_qk_g() -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.magnitude
	}

    open func pushDirection_qk_s(_ pushDirection:  CGVector) -> QKC<AA,YY,ZZ, CGVector>{
		return link(next: pushDirection).then_QK { $0.value.pushDirection = pushDirection }
	}
    open func pushDirection_qk_g() -> QKC<AA,YY,ZZ, CGVector>{
		 self +^ self.value.pushDirection
	}

    open func addItem_qk_f(_ item: UIDynamicItem) -> QKC<AA,YY,ZZ, UIDynamicItem>{
		 self +^ self.value.addItem(item) +^ item
	}

    open func removeItem_qk_f(_ item: UIDynamicItem) -> QKC<AA,YY,ZZ, UIDynamicItem>{
		 self +^ self.value.removeItem(item) +^ item
	}

    open func targetOffsetFromCenter_qk_f(for item: UIDynamicItem) -> QKC<AA,YY,ZZ,UIOffset>{
		 self +^ self.value.targetOffsetFromCenter(for:item)
	}

    open func setTargetOffsetFromCenter_qk_f(_ o: UIOffset, for item: UIDynamicItem) -> QKC<AA,YY,ZZ, UIOffset>{
		 self +^ self.value.setTargetOffsetFromCenter(o, for:item) +^ o
	}

    open func setAngle_qk_f(_ angle: CGFloat, magnitude: CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.setAngle(angle, magnitude:magnitude) +^ angle
	}

}

